package com.agv.core.services;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.agv.core.exception.AgvException;
import com.agv.core.objectDomain.AdmCatalogo;
import com.agv.core.objectDomain.Catalogo;
import com.agv.core.objectDomain.InfoAuditoria;
import com.agv.core.objectDomain.ParamCatalogo;
import com.agv.core.objectDomain.Paso;

public interface ICatalogosService {

	public List<Map<String, String>> getCombo(String query) throws AgvException;

	public AdmCatalogo obtenerAdmCatalgo(String nombreCatalogo)
			throws AgvException;

	public ArrayList<Catalogo> obtenerCatalgos(ArrayList<Paso> pasos)
			throws AgvException;

	public void insertarCatalgoBD(AdmCatalogo admCatalogo, Integer idUsuarioAlta)
			throws AgvException;

	public void actualizarCatalgoBD(AdmCatalogo admCatalogo,
			Integer idUsuarioMod, Integer vlCampoId) throws AgvException;

	public void borrarCatalgoBD(AdmCatalogo admCatalogo, Integer idUsuarioMod,
			Integer vlCampoId, String nbCampoEstatus) throws AgvException;

	public List<Map<String, String>> buscar(String vlValor, String nbTabla,
			String nbCampo, String nbCampoId, String nbCampoEstatus,
			ArrayList<ParamCatalogo> parametros) throws AgvException;

	public InfoAuditoria consultaInfoAuditoria(String nbTabla,
			String nbCampoId, String vlValorId) throws AgvException;

	public boolean validaDuplicidad(String nbCampo, String vlValor,
			String nbTabla) throws AgvException;

	public void addConfiguration(Map<String, Object> params)
			throws AgvException;

	public void addStepConfiguration(Map<String, Object> params)
			throws AgvException;

	public Map<String, String> getCatConfiguration(Integer idCat)
			throws AgvException;

	public List<Map<String, String>> getCatSteps(String[] idCats)
			throws AgvException;

}
